#!/bin/sh
#
#
#  COPYRIGHT 2003-2006, EMULEX CORPORATION
#  3333 Susan St., Costa Mesa, CA 92626
#
#  All rights reserved.  This computer program and related documentation
#  is protected by copyright  and distributed under licenses restricting
#  its use,  copying,  distribution  and decompilation.    This computer
#  program  and its  documentation  are CONFIDENTIAL  and a TRADE SECRET
#  of EMULEX CORPORATION.   The receipt or  possession of  this  program
#  or its documentation does not  convey rights to reproduce or disclose
#  its  contents,  or to  manufacture, use, or sell anything that it may
#  describe, in whole or in part,  without the specific  written consent
#  of  EMULEX CORPORATION.   Any reproduction  of  this program  without
#  the express  written  consent  of EMULEX  CORPORATION  is a violation
#  of the  copyright laws  and may  subject you to  criminal prosecution.
#

#  Kill parent elxdiscoveryd
ppid=`ps -ea | grep elxdisc | grep -v grep | grep -v start | awk '{ print $1 }' | sort -n | head -1`
if [ ! -z "$ppid" ];then
    kill $ppid > /dev/null 2>&1
fi

#  Kill any zombied elxdiscoveryd children
for ppid in `ps -ea | grep elxdisc | grep -v grep | grep -v start | awk '{ print $1 }' | sort -n`
do
    kill -9 $ppid > /dev/null 2>&1
done

platform_os=`uname -s`

if [ "$platform_os" = "Linux" ];then
    # for rhel5 and SLES10 SP1 installs, lpfcdfc does not exist
    ioctl_driver="lpfcdfc"

    if [ -f /etc/redhat-release ]; then
       rhel_major_version=`cat /etc/redhat-release | awk '{ print $7 }' | awk -F. '{ print $1 }'`

       if [ "$rhel_major_version" -eq 4 ];then
           # is this rhel5 Tikanga release
           rhel5_check=`cat /etc/redhat-release | grep Tikanga`
           if [ -n "$rhel5_check" ];then
               ioctl_driver="lpfc"
           fi
       else
           ioctl_driver="lpfc"
       fi
    elif [ -f /etc/SuSE-release ]; then
       # Check for SLES10 SP1
       sles_major_version=`cat /etc/SuSE-release | grep VERSION | awk '{ print $3 }'`
       if [ "$sles_major_version" -eq 10 ]; then
           sles_minor_version=`cat /etc/SuSE-release | grep PATCHLEVEL | awk '{ print $3 }'`
           if [ -n "$sles_minor_version" ];then
               ioctl_driver="lpfc"
           fi
       fi
    fi

    #  Start the discovery daemon only if driver loaded
    lpfcdfc_loaded=`lsmod | awk '{ print $1 }' | grep "$ioctl_driver"`
    if [ ! -z "$lpfcdfc_loaded" ];then
        if [ -f /usr/sbin/hbanyware/elxdiscoveryd ]; then
            /usr/sbin/hbanyware/elxdiscoveryd &
        fi
    else
        echo ""
        echo "Not starting discovery daemon because $ioctl_driver driver module not loaded."
        echo "Load lpfcdfc driver module and retry."
    fi
else
    /usr/sbin/hbanyware/elxdiscoveryd &
fi
